# 基础
"""
假设有一个字典`person_info` 储存了一个人的信息，包含不少于5个键值对，如下所示：
person_info = {
    "name": "Alex",
    "age": 30,
    "country": "USA",
    "language": ["English", "Spanish"],
    "is_student": False
}
"""
# person_info = {
#     "name": "Alex",
#     "age": 30,
#     "country": "USA",
#     "language": ["English", "Spanish"],
#     "is_student": False
# }

"""
1.打印`person_info` 字典的`name` 值。
"""
# print(person_info["name"])
"""
2. 修改`age` 的值为 31。
"""
# person_info["age"] = 18
# print(person_info["age"])
"""
3.向字典中添加一个新的键值对 `height": 175`。
"""
# person_info["height"] = "175"
# print(person_info)
"""
4.删除字典中的 `is_student"` 键及其值。
"""
# del person_info["is_student"]
# print(person_info)
"""
5.使用循环遍历字典，打印所有的键和值。
"""
# for item in person_info.items():
#     print(item)
"""
6.检查字典中是否有 `email"` 这个键，如果没有，添加 `email": "alex@example.com"`。
"""
# if "emial" not in person_info:
#     person_info["emial"] = "alex@example.com"
#
# print(person_info)
"""
7.将`language` 的值改为只包含 `English"`。
"""
# person_info["language"] = "English"
# print(person_info)
"""
8.获取并打印字典中`language` 列表的长度。
"""
# print(len(person_info["language"]))
"""
9.向`language` 列表中添加一种新语言 `French"`。
"""
# person_info["language"].append("Fench")
# print(person_info)

"""
10.循环插入新的键值对到字典：将 ` hobby'` + 数字 作为键，
相应的 ` hobby'` + 数字值 作为值，数字从1至3。
hobby1:1
hobby2:2
hobby3:3
"""

# for i in range(1,4):
#     key = "hobby{}".format(i)
#     value = "hobby{}值".format(i)
#     person_info[key] = value
# print(person_info)

# 进阶
"""
您是一个数据分析师，
现在您有一个包含公司员工个人信息的字典`employees`，
其中每个键表示一个员工ID，
对应的值是一个包含姓名、年龄、性别、职位、项目组和薪资历史列表的字典。

员工信息的示例如下：
"""
employees = {
    101: {
        "name": "Alice",
        "age": 30,
        "gender": "Female",
        "position": "Data Scientist",
        "team": "Research",
        "salary_history": [70000, 80000, 90000]
    },
# 更多员工数据
}

"""
1. 新增一个员工的信息到`employees`字典中。
"""
# employees[102] ={
#     "name":"Cheny",
#     "age":18,
#     "gender":"Female",
#     "position":"Python Automatic",
#     "team":"Research",
#     "salary_history":[80000,90000,100000]
# }
# print(employees)
"""
2. 删除一个指定的员工的信息。
"""
# del employees[102]
# print(employees)
"""
3.更新员工101的年龄至31。
"""
# employees[101]["age"] = 31
# print(employees)
"""
4. 增加员工101薪资历史中的最新薪资至95000。
"""
# employees[101]["salary_history"].append(95000)
# print(employees)
"""
5. 计算员工101的平均薪资。
"""
# sum_salary_history = sum(employees[101]["salary_history"])
# avg_salary_history = sum_salary_history / len(employees[101]["salary_history"])
# print(avg_salary_history)
"""
6. 找出所有年龄大于25岁的员工的姓名和ID。
"""
# name_id = []
# for emp_id,emp_info in employees.items():
#     if emp_info["age"] > 25:
#         name_id.append({"id":emp_id,"name":emp_info["name"]})
#
# for emp in name_id:
#     print((f"ID: {emp['id']}, 姓名: {emp['name']}"))
"""
7. 对`employees`中的每个员工，添加'bonus'键至其字典中，其中值是最新薪资的10%。
"""
# for emp_id,emp_info in employees.items():
#     emp_info["bonus"] = employees[emp_id]["salary_history"][-1] * 0.1
#
# print(employees)
"""
8. 将员工101的职位更新为"Senior Data Scientist"。
"""
# employees[101]["position"] = "Senior Data Scientist"
# print(employees)
"""
9. 从员工的信息中移除`gender`键。
"""
# for emp_id,emp_info in employees.items():
#     del emp_info["gender"]
#
# print(employees)
"""
10. 创建一个新的嵌套字典，该字典仅包含员工的`name`和`position`。
"""
# employees_name_position = {}
# 
# for emp_id,emp_info in employees.items():
#     employees_name_position[emp_id] = {
#         "name":emp_info["name"],
#         "position":emp_info["position"]
#     }
# 
# print(employees_name_position)